public class Test {
    /**
     * 网络初识
     * @param args
     *      2.认识协议
     */
    public static void main1(String[] args) {
        /**
         * 认识协议
         *      定义：是一种约定，对于通信规则的约定，必须通信双方都认可
         *      作用：便于进行通信传递不同信息
         *      协议分层：把多个协议按照功能拆分为不同层级，每个层级都对应相应的功能，上层调用下层功能，下层为上层服务
         *      作用：1.封装：隐藏细节，降低学习成本，只要会使用即可
         *           2.解耦合：降低协议的耦合性，便于替换
         */
    }

    public static void main(String[] args) {
        /**
         * OSI七层模型->教科书上的模型
         * TCP/IP四/五层模型->现实生活中常用
         *      1.TCP/IP的五层协议
         *          1，物理层->硬件
         *          2.数据链路层->通信过程中，相邻节点的之间的通信（相邻地的交流方式）
         *          3.网络层->通信路径的规划（送货路径）
         *          4.传输层->端与端的传输（起点与终点）
         *          5.应用层->应用程序的沟通
         *     2.层与层之间是如何协作的（通过调用相应API来进行数据传输）
         *          1.封装->不断添加报头
         *              1.应用层(应用程序协议)->将数据打包成应用数据包->传给传输层
         *              2.传输层(UDP/TCP协议)->打包成传输数据包->调用UDP或者TCP添加报头+将传输数据包打包成传输载荷->传给网络层
         *              3.网络层(IP协议)->将传输层给的包添加IP报头，此时变成了IP报头+UDP/TCP报头+网络载荷->传给数据链路
         *              4.数据链路层(以太网协议)->将网络层包添加帧头，变为以太网包->传给物理层
         *              5.物理层->将二进制转化为光/电/电磁波等进行发射
         *          2.分用->封装步骤反过来就是分用
         */
    }
}
